#!/bin/bash

#####################系统安全设置###########################################

System_Safety()
{
#1：关键目录加固	保护系统关键文件不被修改替换!

   chmod 0555  /usr/bin	 
   chmod 0555  /usr/sbin	
   chmod 0644  /etc/bashrc
   
   chattr +i  /usr/bin	 
   chattr +i  /usr/sbin	
   chattr +i  /etc/bashrc
   
#2：服务加固	保护系统服务，开启后将无法添加和删除服务，部分软件无法安装!

    chmod  0755  /etc/rc.d	     
    chmod  0755  /etc/rc.d/init.d	 
    chmod  0755  /etc/rc.d/rc0.d	 
    chmod  0755  /etc/rc.d/rc1.d	 
    chmod  0755  /etc/rc.d/rc2.d	 
    chmod  0755  /etc/rc.d/rc3.d	 
    chmod  0755  /etc/rc.d/rc4.d	 
    chmod  0755  /etc/rc.d/rc5.d	 
    chmod  0755  /etc/rc.d/rc6.d	 
    chmod  0644  /etc/rc.d/rc.local
	
	chattr +i /etc/rc.d	     
    chattr +i /etc/rc.d/init.d	
    chattr +i /etc/rc.d/rc0.d	
    chattr +i /etc/rc.d/rc1.d	
    chattr +i /etc/rc.d/rc2.d	
    chattr +i /etc/rc.d/rc3.d	
    chattr +i /etc/rc.d/rc4.d	
    chattr +i /etc/rc.d/rc5.d	
    chattr +i /etc/rc.d/rc6.d	
    chattr +i /etc/rc.d/rc.local
	
#3：计划任务加固	保护计划任务不被篡改，开启后无法添加删除计划任务!

    chmod  0644  /usr/bin/crontab
	chmod  0644  /etc/crontab	
	chmod  0775  /etc/cron.d	
    chmod  0644  /etc/cron.daily
    chmod  0644  /etc/cron.hourly
    chmod  0644  /etc/cron.monthly
    chmod  0644  /etc/cron.weekly
	chmod  0600  /etc/anacrontab	 
	chmod  0700  /var/spool/cron	 
	chmod  0600  /var/spool/cron/root
	chmod  0755  /var/spool/anacron	
    
    chattr +i  /usr/bin/crontab	    
    chattr +i  /etc/crontab	        
    chattr +i  /etc/cron.d	        
    chattr +i  /etc/cron.daily	    
    chattr +i  /etc/cron.hourly	    
    chattr +i  /etc/cron.monthly	    
    chattr +i  /etc/cron.weekly	    
    chattr +i  /etc/anacrontab	    
    chattr +i  /var/spool/cron	    
    chattr +i  /var/spool/cron/root	
    chattr +i  /var/spool/anacron
	
#4：用户加固	保护用户,开启后将无法添加删除用户和修改用户密码!

    chmod  0644  /etc/passwd	     
    chmod  0644  /etc/group	
    chmod  0644  /usr/sbin/groupadd
    chmod  0644  /usr/sbin/useradd
    chmod  0644  /usr/bin/passwd
    
    chattr +i  /etc/passwd	    
    chattr +i  /etc/group	    
    chattr +i  /usr/sbin/groupadd
    chattr +i  /usr/sbin/useradd 
    chattr +i  /usr/bin/passwd
	
#5：环境变量加固保护用户环境变量不被修改，开启后无法自定义用户环境变量!

    chmod 0600 /root/.bash_history
    chmod 0644 /root/.bashrc	  
    chmod 0644 /root/.bash_logout
    chmod 0644 /root/.bash_profile
    
    chattr +a  /root/.bash_history
    chattr +i  /root/.bashrc	  
    chattr +i  /root/.bash_logout
    chattr +i  /root/.bash_profile
	
#6：保护启动脚本不被修改

    chattr +i -R /etc/init.d/
	
#7隐藏服务器系统信息

    mv  /etc/issue       /etc/issuebak
    mv  /etc/issue.net   /etc/issue.netbak

	
}




#####################系统安全还原###########################################
System-Safety()
{
#1：关键目录加固	保护系统关键文件不被修改替换!
  
   #还原
   chattr -i  /usr/bin	 
   chattr -i  /usr/sbin	
   chattr -i  /etc/bashrc
   
#2：服务加固	保护系统服务，开启后将无法添加和删除服务，部分软件无法安装!
	
	#还原
	chattr -i /etc/rc.d	     
    chattr -i /etc/rc.d/init.d	
    chattr -i /etc/rc.d/rc0.d	
    chattr -i /etc/rc.d/rc1.d	
    chattr -i /etc/rc.d/rc2.d	
    chattr -i /etc/rc.d/rc3.d	
    chattr -i /etc/rc.d/rc4.d	
    chattr -i /etc/rc.d/rc5.d	
    chattr -i /etc/rc.d/rc6.d	
    chattr -i /etc/rc.d/rc.local
	
#3：计划任务加固	保护计划任务不被篡改，开启后无法添加删除计划任务!
		
	#还原
	chattr -i  /usr/bin/crontab	    
	chattr -i  /etc/crontab	        
	chattr -i  /etc/cron.d	        
	chattr -i  /etc/cron.daily	    
	chattr -i  /etc/cron.hourly	    
	chattr -i  /etc/cron.monthly	
	chattr -i  /etc/cron.weekly	    
	chattr -i  /etc/anacrontab	    
	chattr -i  /var/spool/cron	    
	chattr -i  /var/spool/cron/root	
	chattr -i  /var/spool/anacron	
	
    chmod  0775  /usr/bin/crontab	    
    chmod  0644  /etc/crontab	        
    chmod  0775  /etc/cron.d	        
    chmod  0775  /etc/cron.daily	    
    chmod  0775  /etc/cron.hourly	    
    chmod  0775  /etc/cron.monthly	
    chmod  0775  /etc/cron.weekly	    
    chmod  0600  /etc/anacrontab	    
    chmod  0700  /var/spool/cron	    
    chmod  0600  /var/spool/cron/root	
    chmod  0755  /var/spool/anacron	
	
#4：用户加固	保护用户,开启后将无法添加删除用户和修改用户密码!

    #还原
	chattr -i  /etc/passwd	    
    chattr -i  /etc/group	    
    chattr -i  /usr/sbin/groupadd
    chattr -i  /usr/sbin/useradd 
    chattr -i  /usr/bin/passwd	
	
	chmod  0644  /etc/passwd	    
    chmod  0644  /etc/group	     
    chmod  0750  /usr/sbin/groupadd
    chmod  0750  /usr/sbin/useradd
    chmod  0755  /usr/bin/passwd
	
#5：环境变量加固保护用户环境变量不被修改，开启后无法自定义用户环境变量!
    
    #还原
    chattr -a  /root/.bash_history
    chattr -i  /root/.bashrc	  
    chattr -i  /root/.bash_logout
    chattr -i  /root/.bash_profile
	
#6：保护启动脚本不被修改
	
	#还原
	chattr -i -R /etc/init.d/
	
#7隐藏服务器系统信息
  
    #还原
	mv  /etc/issuebak       /etc/issue    
    mv  /etc/issue.netbak   /etc/issue.net


}

clear
echo  "1:加强系统安全"
echo  "2:撤销系统安全"
echo

read -p "请输入选择：" ANCd2

case "${ANCd2}" in
    1)
        System_Safety
        ;;
    2)
        System-Safety
        ;;
esac